    ====================================================================
    Release Notes
        IntelliPort(tm) II Driver Version 1.0.2
        for MS-DOS


        October 5, 1993                                  P/N 0-13065-1
    ====================================================================

    ------------
    Introduction
    ------------

    The IntelliPort II MS-DOS device driver is intended for use in appli-
    cations that can access ports by device name or through the INT 14
    interface.  For those who wish to use the IntelliPort II in custom
    applications, a Developer's Kit is available from Computone.  Pro-
    grams written with the Developer's Kit can take full advantage of
    the high performance offered by the IntelliPort II.

    This Release Note describes how to install IntelliPort II hardware
    and software on an MS-DOS or PC-DOS system.

    Version 1.0.2 of the IntelliPort II MS-DOS device driver supports
    new IntelliPort II EXpandable expansion modules, including all
    Slimline modules and the RJ-45 Tower module.  You must install
    version 1.0.2 to use these new modules.  Before you begin, review
    the IntelliPort II Hardware Reference Guide for an overview of
    product features and operation.

    We recommend that you install the IntelliPort II hardware before
    the IntelliPort II software.

     +--------------------------------------------------------------+
     | Important!  To avoid damage to hardware, always turn off the |
     | power to the system before you plug or unplug IntelliPort II |
     | cables or components.                                        |
     +--------------------------------------------------------------+

    Computone and IntelliPort are trademarks of Computone Corporation.
    All other company and product names are trademarks or registered
    trademarks of their respective companies.
    
    
    -------------------
    System Dependencies
    -------------------

    The MS-DOS driver imposes the following dependencies:

    - You can install up to four controllers in a system.

    - The driver supports a maximum of 32 ports.

    - All IntelliPort II controllers must share the same IRQ.

    - If you have an EISA system, you cannot install IntelliPort II ISA
      and IntelliPort II EISA controllers in one system.

    For complete hardware installation procedures, see the IntelliPort
    II Hardware Reference Guide.


    ---------------------
    Software Installation
    ---------------------

    This section describes how to install the IntelliPort II software
    device drivers for MS-DOS.  Before you begin, make sure that MS-DOS
    is installed and active on your system.

    Copying the Files onto the System

	1. Insert the IntelliPort II MS-DOS Driver diskette into the A: or
	   B: drive.

	2. Create a directory to place the IntelliPort II driver and
	   support files, as follows:

	   MKDIR C:\CTON

	3. At the command line prompt, type the following:

	   COPY A:*.* C:\CTON

	   This copies the IntelliPort II driver and support files into
	   the C:\CTON directory.

	You can set up the IntelliPort II driver to load from CONFIG.SYS
	or run the driver as a TSR from the command line.  We recommend
	that you use CONFIG.SYS since you can then access IntelliPort II
	ports as DOS devices.


    Notes for EISA Controllers

        IntelliPort II EISA controllers have an I/O
        address based on the slot number in which you installed the
        controller.  The addressing scheme is as follows:
    
        Slot        I/O Addr.
        slot 1      1C88
        slot 2      2C88
         ...         ...
        slot n      nC88
    
    Configuring from CONFIG.SYS

	This section discusses configuring the system to load the
	IntelliPort II driver from CONFIG.SYS.  This method provides
	DOS devices and INT 14 BIOS-compatible support for the
	IntelliPort II serial ports.  Follow these steps:

	1. Open the CONFIG.SYS file with a non-formatting text editor
	   and add the following line:

	   DEVICE=C:\CTON\I2DOS.EXE PORT=308 INT=10

	2. If you have installed the IntelliPort II driver in a
	   different directory, change the path name in this DEVICE=
	   line to reflect the actual location of the driver.

	3. Change the PORT= parameter to reflect the actual base I/O
	   address (in hexadecimal) assigned to the IntelliPort II
	   controller as shown in the Hardware Reference Log of the
	   Product Reference Guide.  If you installed more than one
	   IntelliPort II controller, separate each base address with
	   commas (for example, PORT=308,310,318).  If you omit this
	   parameter, the driver assumes you have one IntelliPort II
	   controller installed with a base I/O address of 308.

	4. Change the INT= parameter to reflect the actual IRQ assigned
	   to the IntelliPort II controller as shown in the Hardware
	   Reference Log of the Product Reference Guide.  All
	   IntelliPort II controllers installed in a system must share
	   the same IRQ.  If you omit this parameter, the driver
	   assumes the IRQ is 10.

	+--------------------------------------------------------------+
        | Important:  If you have any INT 14 enhancers or other driver |
        | software that chains to INT 14, you must install them before |
        | the IntelliPort II driver software.                          |
        +--------------------------------------------------------------+


    Configuring from the Command Line

	This section discusses configuring the system to load the
	IntelliPort II driver as a TSR.  This method provides only INT
	14 BIOS-compatible support for the IntelliPort II serial
	ports.  Use this method if you do not required DOS devices or
	the I2MODE command.  Follow these steps:

	1. Move to the directory that contains the IntelliPort II
	   driver.  If you prefer, you can add this directory to your
	   path.

	2. Type the following command at the DOS prompt:

	   I2DOS.EXE PORT=308 INT=10

	   Change the PORT= and INT= parameters to reflect the actual
	   base I/O address (in hexadecimal) and IRQ assigned to the
	   IntelliPort II controller, as shown in the Hardware
	   Reference Log of the Product Reference Guide.

	   If you installed more than one IntelliPort II controller,
	   separate each base address with commas (for example,
	   PORT=308,310,318).  If you omit these parameters, the driver
	   assumes you have one IntelliPort II controller installed
	   with a base I/O address of 308 and an IRQ of 10.

	If you want your system to boot with the IntelliPort II driver
	loaded as a TSR, you can place this command in your
	AUTOEXEC.BAT file:

	    C:\CTON\I2DOS.EXE PORT=308 INT=10

	Be sure to modify the path and the PORT= and INT= parameters to
	reflect your installation.

    Startup Information

	When you install the IntelliPort II driver from CONFIG.SYS, the
	driver displays the number of ports found and the highest port
	device allocated (for example, II07 for an eight-port con-
	troller).

	The number of ports may not always correspond to the number of
	devices.  This can happen when you have an IntelliPort II
	EXpandable with two 8-port expansion modules; the first
	expansion module is assigned II00: through II07: and the second
	module is assigned II16: through II23:.  This may also happen
	if the driver finds one or more bad ports.  For example, if
	port 5 of an eight-port standard IntelliPort II were bad, the
	driver would assign devices II00: through II03: and II05:
	through II07:.


    -----------------
    Application Notes
    -----------------

    DOS Device Support

	Before using the IntelliPort II devices, you should first
	initialize them using the I2MODE.EXE command supplied with the
	IntelliPort II driver.

	All 32 devices (II00 through II31) are recognized as devices
	regardless of how many IntelliPort II ports you installed.
	However, if you attempt to access an invalid device (for
	example, accessing II10: in an 8-port system), DOS responds
	with an "Invalid unit reading device" error.

	The IntelliPort II handler assumes that COM3 and COM4 are not
	installed on your system.  If these ports are installed, they
	can cause conflicts with II00 and II01.  You should remove or
	disable COM3 and COM4 if these ports are installed on your
	system.

    INT 14 Support

	Existing software that uses INT 14 to access serial ports may
	be able to access the first two IntelliPort II ports.  Using
	standard INT 14 functions, you can operate IntelliPort II ports
	at up to 9600 bps.  The following software is known to work
	(other software may work as well):

            MS-Kermit                  set port bios3 (or bios4)
            Procomm Plus for Windows   INT14:3 (or INT14:4) 

    INT 14 Function Summary

	When you start the IntelliPort II driver (either from
	CONFIG.SYS or by running it as a TSR), the driver adds itself
	to the INT 14 chain.  The driver provides functions that are
	compatible with the MS-DOS INT 14 functions, but with several
	extensions.  The functions are:

        Function Description
        -------- -----------
    
            0    Initialize port
    
            1    Write a character to the port.
    
            2    Read a character from the port.
    
            3    Read port status.
    
            4    Extended initialize (includes extended support for data
                 rates up to 115,200 bps).
    
            5    Extended port control.
    
           F1    Write a character string to the port (extended
                 function).
    
           F2    Read a character string from the port (extended
                 function).
    
        For more information, see the section "INT 14 Functions."


    ------------------------------------
    I2MODE - Set up IntelliPort II Ports
    ------------------------------------

    The I2MODE.EXE utility lets you set up each IntelliPort II port
    from the DOS command line.  This utility provides the same function
    as the DOS MODE command for serial ports, with several extensions.
    The I2MODE command has several formats as follows:

	I2MODE [/H] I2MODE port [speed,parity,length,stopbits[,flow_ctrl]]
	I2MODE port LOCKED|UNLOCKED

    Typing I2MODE with no parameters displays a brief listing of the
    parameters allowed.  The /H option displays a longer help message
    with allowable values.

    Typing I2MODE with a port name and no other parameters displays the
    current settings of that port.  You can set IntelliPort II port
    parameters as follows:

    speed      The data rate, in bps.  Valid settings are:  110, 150,
	       300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400,
	       56700, 76800, or 115200.

    parity     The parity.  Valid settings are:  N (none), E (even),
	       O (odd), M (mark), or S (space).

    length     The number of data bits per character.  Valid settings
	       are:  5, 6, 7, or 8.

    stopbits   The number of stop bits per character.  Valid settings
	       are:  1, 1.5, or 2.

    flow_ctrl  The flow control method to use.  Valid settings are:
	       XON_XOFF, -XON_XOFF, CTS_RTS, -CTS_RTS, DSR_DTR, or
	       -DSR_DTR.  The dash disables the specified flow control
	       method.  You can set more than one flow control method
	       on a port.

    Finally, you can lock or unlock the settings for a particular
    IntelliPort II.  If you use the keyword LOCKED, the speed, parity,
    length, and stop bits settings cannot be changed until you reboot
    or issue the command I2MODE [port] UNLOCKED.  This is useful, for
    example, to run programs such as MS-Kermit at data rates above 9600
    bps and prevent the program from changing the port.  You can change
    the flow control of a port whether or not the port is locked.

    The default port settings are 2400 bps, 8 bit characters, no
    parity, one stop bit, no flow control (2400,N,8,1), and unlocked.

    The following are examples of using the I2MODE command:

    I2MODE /H  displays a help message

    I2MODE II00: 115200,N,8,1,CTS_RTS
	       sets up port 0 for 115,200 bps, 8 bit characters, no
               parity, one stop bit, and CTS/RTS flow control

    I2MODE II00: LOCKED
               locks port 0, allowing changes only to flow control 

    I2MODE II03: UNLOCKED
               allows changes to port 3's settings


    ----------------
    INT 14 Functions
    ----------------

    This section describes the INT 14 functions available in the
    IntelliPort II driver.  These functions are compatible with the
    standard MS-DOS INT 14 functions, but with some extensions.  In all
    functions, you load DX with the port number.  DX is 0 for COM1, 1
    for COM2, and 2 for II00 (the first IntelliPort II port).  This
    gives you access to COM1 and COM2 as well as the IntelliPort II
    ports.

    Initialize Port (function 0)

	This function sets the data rate, word length, parity, and stop
	bits for the specified port.  In most cases, you should use
	function 4 (Extended Initialize Port) instead.

    Registers:

	DX = the port number (0 for COM1, 1 for COM2, 2 for II00, etc.)
	AH = 0 (specifies Initialize Port function)
	AL = the port setting, as an unsigned byte.  The format of
             register AL is as follows:

        +---------------------+--------------+-------+---------------+
        | Bit 7  Bit 6  Bit 5 | Bit 4  Bit 3 | Bit 2 | Bit 1   Bit 0 |
        |      Data rate      |    Parity    | Stop  | Char. Length  |
        +---------------------+--------------+-------+---------------+


        Bits 5 through 7 specify the data rate as follows:

            000 = 110 bps
            001 = 150 bps
            010 = 300 bps
            011 = 600 bps
            100 = 1200 bps
            101 = 2400 bps
            110 = 4800 bps
            111 = 9600 bps

        Bits 3 and 4 specify the parity as follows:

            00 = no parity
            01 = odd parity
            10 = no parity
            11 = even parity

        Bit 2 specifies the number of stop bits as follows:

            0 = 1 stop bit
            1 = 2 stop bits

        Bits 0 and 1 specify the word length as follows:

            10 = 7 bits
            11 = 8 bits


    Returns:

	AH = the port status, as follows:
             Bit 7 = time-out (never happens)
             Bit 6 = transmitter empty
             Bit 5 = transmitter holding register empty
             Bit 4 = BREAK detected
             Bit 3 = Framing error
             Bit 2 = Parity error
             Bit 1 = Overrun error
             Bit 0 = Received data ready

	AL = the modem status register, as follows:
             Bit 7 = DCD (Data Carrier Detect)
             Bit 6 = RI (Ring Indicator)
             Bit 5 = DSR (Data Set Ready)
             Bit 4 = CTS (Clear to Send)
             Bit 3 = DCD state has changed since last read
             Bit 2 = RI state has changed from low to high since last read
             Bit 1 = DSR state has changed since last read
             Bit 0 = CTS state has changed since last read


    Send Character (function 1)

    This function transmits a character to the attached serial device
    on the specified port.

    Registers:

	DX = the port number (0 for COM1, 1 for COM2, 2 for II00, etc.)

	AH = 1 (specifies Send Character function)

	AL = the character to send

    Returns:

	AH = the port status, as follows:
             Bit 7 = time-out
             Bit 6 = transmitter empty
             Bit 5 = transmitter holding register empty
             Bit 4 = BREAK detected
             Bit 3 = Framing error
             Bit 2 = Parity error
             Bit 1 = Overrun error
             Bit 0 = Received data ready

    Receive Character (function 2)

    This function receives a character from the attached serial device
    on the specified port.

    Registers:

	DX = the port number (0 for COM1, 1 for COM2, 2 for II00, etc.)

	AH = 2 (specifies Receive Character function)

    Returns:

	AL = the character received

	AH = the port status, as follows:
             Bit 7 = success/failure  (0 = function was successful)
             Bit 6 = transmitter empty*
             Bit 5 = transmitter holding register empty*
             Bit 4 = BREAK detected*
             Bit 3 = Framing error*
             Bit 2 = Parity error*
             Bit 1 = Overrun error*
             Bit 0 = Received data ready*

	    *valid only if bit 7 is set


Read Status (function 3)

This function reads the port and modem status for the specified port.

    Registers:

	DX = the port number (0 for COM1, 1 for COM2, 2 for II00, etc.)

	AH = 3 (specifies Read Status function)

    Returns:

	AH = the port status, as follows:
             Bit 7 = time-out (never happens)
             Bit 6 = transmitter empty
             Bit 5 = transmitter holding register empty
             Bit 4 = BREAK detected
             Bit 3 = Framing error
             Bit 2 = Parity error
             Bit 1 = Overrun error
             Bit 0 = Received data ready

	AL = the modem status register, as follows:
             Bit 7 = DCD (Data Carrier Detect)
             Bit 6 = RI (Ring Indicator)
             Bit 5 = DSR (Data Set Ready)
             Bit 4 = CTS (Clear to Send)
             Bit 3 = DCD state has changed since last read
             Bit 2 = RI state has changed from low to high since last read
             Bit 1 = DSR state has changed since last read
             Bit 0 = CTS state has changed since last read


    Extended Initialize (function 4)

    This function sets the data rate, word length, parity, and stop
    bits for the specified port.  This function is compatible with the
    PS/2 INT 14 function 4 BIOS call, with extended data rate
    selections.

Registers:

	DX = the port number (0 for COM1, 1 for COM2, 2 for II00, etc.)

	AH = 4 (specifies Extended Initialize Port function)

	AL = 01 to send a BREAK; 00 otherwise.

	BH = the parity, as follows:
	     0 = none
	     1 = odd
	     2 = even
	     3 = mark (stick parity odd)
	     4 = space (stick parity even)

	BL = the number of stop bits, as follows:
	     0 = 1 stop bit
	     1 = 2 stop bits (1.5 stop bits if the word length is 5 bits)

	CH = the word length, as follows:
	     0 = 5 bits
	     1 = 6 bits
	     2 = 7 bits
	     3 = 8 bits

	CL = the data rate, in hexadecimal, as follows:
	     00h = 110 bps
	     01h = 150 bps
	     02h = 300 bps
	     03h = 600 bps
	     04h = 1200 bps
	     05h = 2400 bps
	     06h = 4800 bps
	     07h = 9600 bps
	     08h = 19200 bps
	     09h = 38400 bps (IntelliPort II extension)
	     0Ah = 57600 bps (IntelliPort II extension)
	     0Bh = 76800 bps (IntelliPort II extension)
	     0Ch = 115200 bps (IntelliPort II extension)

    Returns:

	AH = the port status, as follows:
             Bit 7 = time-out (never happens)
             Bit 6 = transmitter empty
             Bit 5 = transmitter holding register empty
             Bit 4 = BREAK detected
             Bit 3 = Framing error
             Bit 2 = Parity error
             Bit 1 = Overrun error
             Bit 0 = Received data ready

	AL = the modem status register, as follows:
             Bit 7 = DCD (Data Carrier Detect)
             Bit 6 = RI (Ring Indicator)
             Bit 5 = DSR (Data Set Ready)
             Bit 4 = CTS (Clear to Send)
             Bit 3 = DCD state has changed since last read
             Bit 2 = RI state has changed from low to high since last read
             Bit 1 = DSR state has changed since last read
             Bit 0 = CTS state has changed since last read


    Extended Port Control (function 5)

    This function reads or sets the modem control register for the
    specified port.

    Registers:

	DX = the port number (0 for COM1, 1 for COM2, 2 for II00, etc.)

	AH = 5 (specifies Extended Port Control function)

	AL = 00 to read the MCR; 01 to write

	BL = if AL is 1, the bits to set in the MCR, as follows:
             Bit 4 = Loopback
             Bit 3 = OUT2
             Bit 2 = OUT1
             Bit 1 = RTS
             Bit 0 = DTR

	     Bits 5 through 7 are reserved and should be set to 0.

    Returns:

	BL = the modem control register, in the same format as shown above


    Send String (function F1)

    The Send String function is an extension unique to the IntelliPort
    II driver.  This function sends a string of characters to the
    specified port until one of the following occurs:

	- All the requested characters are sent.

	- The time-out period elapses.  This could happen, for example,
	  if the device attached to the port is off-line.

    Registers:

	DX = the port number (0 for COM1, 1 for COM2, 2 for II00, etc.)

	AH = F1 hexadecimal (specifies Send String function)

	BX = the string address (offset)

	DS = the string address (segment)

	CX = the number of characters to send

	SI = time-out period, in multiples of 10 ms

    Returns:

	AH = the port status, as follows:
             Bit 7 = time-out
             Bit 6 = transmitter empty
             Bit 5 = transmitter holding register empty
             Bit 4 = BREAK detected
             Bit 3 = Framing error
             Bit 2 = Parity error
             Bit 1 = Overrun error
             Bit 0 = Received data ready

	CX = the number of characters actually sent

    Notes:

	- If you set up the Send String function with SI=0, the
	  function sends as many characters as possible without
	  waiting.  This is useful when you want the function to return
	  without blocking.

	- Regardless of what timeout value you set, you must set the
	  maximum number of characters to send in CX.  This value is
	  replaced with the number of characters actually sent.


    Receive String (function F2)

    The Receive String function is an extension unique to the Intelli-
    Port II driver.  This function reads data from the specified port
    until one of the following occurs:

    - the receive buffer becomes full

    - the termination character is received

    - the time-out period elapses

    Registers:

	DX = the port number (0 for COM1, 1 for COM2, 2 for II00, etc.)

	AH = F2 hexadecimal (specifies Receive String function)

	BX = the string address (offset)

	DS = the string address (segment)

	CX = the size of the receive buffer

	AL = the termination character (set to 0 to read data until the 
	     buffer fills up or until the time-out period elapses)

	SI = time-out period, in multiples of 10 ms

    Returns:

	AH = the port status, as follows:
             Bit 7 = time-out
             Bit 6 = transmitter empty
             Bit 5 = transmitter holding register empty
             Bit 4 = BREAK detected
             Bit 3 = Framing error
             Bit 2 = Parity error
             Bit 1 = Overrun error
             Bit 0 = Received data ready

	CX = the length of the returned string

    Notes:

	- If you set up the Receive String function with SI=0, the
	  function performs a single read to get as much data as is
	  available (subject to the size of the receive buffer and the
	  termination character) without waiting for more data to come
	  in.

